package cn.itcast.nems.approval.dao.entity;

import com.baomidou.mybatisplus.annotation.TableName;

import java.io.Serializable;
import java.time.LocalDateTime;

/**
 * <p>
 * 流程审批单配置
 * </p>
 *
 * @author 刘曙
 * @since 2023-11-22
 */
@TableName("e2_approval_config")
public class ApprovalConfig implements Serializable {

    private static final long serialVersionUID = 1L;

    /**
     * 主键ID
     */
    private String id;

    /**
     * 凭单CODE;枚举值：升班｜RENEWAL、转班｜TRANSFER、休学｜SUSPENSION、退学｜DROPOUT、待定｜DELAY、结课｜FINAL
     */
    private String journalCode;

    /**
     * BPM内审批流程KEY
     */
    private String bpmProcessKey;

    /**
     * BPM内对应的业务线
     */
    private String bpmBizLine;

    /**
     * BPM内发送审批&知会提醒消息形式；枚举：企业微信｜WECOM、邮件｜MAIL、短信｜SMS；注：多种消息组合可以用逗号分隔保存多个。示例：WECOM,MAIL
     */
    private String bpmMessageType;
    
    /**
     * BPM内发送审批&知会提醒消息的跳转链接
     */
    private String bpmMessageUrl;
    
    /**
     * BPM内对应的租户ID
     */
    private String bpmTenantId;

    
    /**
     * 租户ID;与itcast_cloud.sys_client.tenant_id一致
     */
    private Integer tenantId;

    /**
     * 子租户ID
     */
    private Integer subtenantId;

    /**
     * 创建人
     */
    private String createdBy;

    /**
     * 创建时间
     */
    private LocalDateTime createdDatetime;

    /**
     * 最后修改人
     */
    private String modifiedBy;

    /**
     * 最后修改时间
     */
    private LocalDateTime modifiedDatetime;

    /**
     * 删除人
     */
    private String deletedBy;

    /**
     * 逻辑删除时间
     */
    private LocalDateTime deletedDatetime;

    /**
     * 逻辑删除标识
     */
    private Boolean deletedFlag;

    public String getId() {
        return id;
    }

    public void setId(String id) {
        this.id = id;
    }

    public String getJournalCode() {
        return journalCode;
    }

    public void setJournalCode(String journalCode) {
        this.journalCode = journalCode;
    }

    public String getBpmProcessKey() {
        return bpmProcessKey;
    }

    public void setBpmProcessKey(String bpmProcessKey) {
        this.bpmProcessKey = bpmProcessKey;
    }

    public String getBpmBizLine() {
        return bpmBizLine;
    }

    public void setBpmBizLine(String bpmBizLine) {
        this.bpmBizLine = bpmBizLine;
    }

    public String getBpmTenantId() {
        return bpmTenantId;
    }

    public void setBpmTenantId(String bpmTenantId) {
        this.bpmTenantId = bpmTenantId;
    }

    public Integer getTenantId() {
        return tenantId;
    }

    public void setTenantId(Integer tenantId) {
        this.tenantId = tenantId;
    }

    public Integer getSubtenantId() {
        return subtenantId;
    }

    public void setSubtenantId(Integer subtenantId) {
        this.subtenantId = subtenantId;
    }

    public String getCreatedBy() {
        return createdBy;
    }

    public void setCreatedBy(String createdBy) {
        this.createdBy = createdBy;
    }

    public LocalDateTime getCreatedDatetime() {
        return createdDatetime;
    }

    public void setCreatedDatetime(LocalDateTime createdDatetime) {
        this.createdDatetime = createdDatetime;
    }

    public String getModifiedBy() {
        return modifiedBy;
    }

    public void setModifiedBy(String modifiedBy) {
        this.modifiedBy = modifiedBy;
    }

    public LocalDateTime getModifiedDatetime() {
        return modifiedDatetime;
    }

    public void setModifiedDatetime(LocalDateTime modifiedDatetime) {
        this.modifiedDatetime = modifiedDatetime;
    }

    public String getDeletedBy() {
        return deletedBy;
    }

    public void setDeletedBy(String deletedBy) {
        this.deletedBy = deletedBy;
    }

    public LocalDateTime getDeletedDatetime() {
        return deletedDatetime;
    }

    public void setDeletedDatetime(LocalDateTime deletedDatetime) {
        this.deletedDatetime = deletedDatetime;
    }

    public Boolean getDeletedFlag() {
        return deletedFlag;
    }

    public void setDeletedFlag(Boolean deletedFlag) {
        this.deletedFlag = deletedFlag;
    }

    public String getBpmMessageType() {
        return bpmMessageType;
    }

    public void setBpmMessageType(String bpmMessageType) {
        this.bpmMessageType = bpmMessageType;
    }

    public String getBpmMessageUrl() {
        return bpmMessageUrl;
    }

    public void setBpmMessageUrl(String bpmMessageUrl) {
        this.bpmMessageUrl = bpmMessageUrl;
    }

    @Override
    public String toString() {
        return "ApprovalConfig{" +
        "id = " + id +
        ", journalCode = " + journalCode +
        ", bpmProcessKey = " + bpmProcessKey +
        ", bpmBizLine = " + bpmBizLine +
        ", bpmTenantId = " + bpmTenantId +
        ", tenantId = " + tenantId +
        ", subtenantId = " + subtenantId +
        ", createdBy = " + createdBy +
        ", createdDatetime = " + createdDatetime +
        ", modifiedBy = " + modifiedBy +
        ", modifiedDatetime = " + modifiedDatetime +
        ", deletedBy = " + deletedBy +
        ", deletedDatetime = " + deletedDatetime +
        ", deletedFlag = " + deletedFlag +
        "}";
    }
}
